// 入口文件，初始化一个基本的项目服务器
// 导入express
const express = require('express');
//创建express服务器实例
const app = express();
// 引入body-parser
const bodyParser = require('body-parser')
    // 导入解析token中间件
const expressJwt = require('express-jwt')
    // 解决跨域问题用cors
    // 导入并配置cors中间件
    // 导入
const cors = require('cors')
    // 将cors注册为全局中间件
app.use(cors());

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }))
    // 配置解析表单数据的中间件， 注意：只能解析解析 app-www-form-urlencoded 格式的表单数据
    // app.use(express.urlencoded({ extended: false }))


// 优化res.send()函数
// 相应数据中间件
app.use(function(req, res, next) {
        res.ResData = function(msg, status = 1, data = {}) {
            res.send({
                data,
                meta: {
                    status,
                    msg: msg
                }
            })
        }
        next()
    })
    //     //身份认证 以/api开始请求的接口不需要token认证
    // app.use(expressJwt({ secret: 'secret' }).unless({ path: [/^\api\//] }))
    //     // 定义错误中间件
    // app.use((err, req, res, next) => {
    //         // 获取捕获信息
    //         if (err.name === 'UnauthorizedError')
    //             return res.ResData("身份认证失败")
    //     })
    // 导入用户路由模块
const userRouter = require('./router/user');
app.use('/api/private/v1', userRouter)
    // 导入并注册
const menuRouter = require('./router/menu')
app.use('/api/private/v1', menuRouter)
const usersRouter = require('./router/users')
app.use('/api/private/v1', usersRouter)
const authorization = require('./router/authorization')
app.use('/api/private/v1', authorization)
    // const userCreate = require('./router/userCreate')
    // app.use('/api/private/v1', userCreate)
    // const usersStateRouter = require('./router/usersState')
    // app.use('/api/private/v1', usersStateRouter)
    // const routerSearchRouter = require('./router/userSearch')
    // app.use('/api/private/v1', routerSearchRouter)
    // const routerUsersUpdate = require('./router/userUpdate')
    // app.use('/api/private/v1', routerUsersUpdate)

//调用listen方法，开启一个指定端口的一个web服务器
app.listen(8886, () => {
    console.log("服务器已开启");
})